Extensible markup language (XML) is a new generic representation for data and documents. It has emerged as a standard for information exchange over the network. Moreover, many application domains have developed DTD (Document Type Definition) or schema-based XML vocabularies for their data and documents to be coded in XML and processed by standard software packages. XML thus has great impact on all these application domains.
Fundamental to XML applications is the creation and editing of XML documents. This is evidenced by the large number of commercial and public-domain XML editors released so far. An XML document editor (hereinafter referred to as “XML editor”) allows its user to produce either well-formed and/or syntax valid XML documents. Such an XML editor typically maintains a well-formed working document and provides validity checking upon the user's request. The user has all the freedom to edit the document. To ensure the document to be valid, the user must check for validity and correct the syntactic violations in the document reported by the validity checker. This requires the user's knowledge about the DTD or schema of the document. Another approach to relieve the user from syntactic concerns is to provide extensive customization specific to XML vocabularies. However, this requires the intervention of a technical expert.
XML editors in use today typically support the so-called context-sensitive editing. While a user is editing a document, the system provides guidance or hints regarding what the user can do next so as to produce a valid document eventually. This policy is helpful. However, the guidance or hints these XML editors provide are typically too loose to guarantee the validity of the resulting document. That becomes a major reason why these XML editors need a validity checker.
Current XML editors appear to differ more in their user interfaces than their underlying editing methodologies and, thus, may be classified into 4 types according to their user interface. They are: user interfaces based on text views, tree views, presentation views and forms. Some systems support multiple types of user interfaces. A text view XML editor allows the user to edit tags as in a text editor. A tree view editor displays the hierarchical structure of an XML document as a tree and provides operations for inserting and deleting tree nodes. A presentation view applies some kinds of transformations, including XSLT, CSS and proprietary ones, to an XML document in order to present a “WYSIWYG” user interface to its user. A presentation view specific to a vocabulary typically requires customization and support by technical experts.
A form-based XML editor is essentially a form generator based on a data model specified by an XML schema (or DTD). Current form-based XML editors are not robust enough to handle general XML data, not to mention their ability to avoid syntactic violations upon data entry.
These XML editors do not enforce syntactic constraints strictly during document construction and provide validity checking as warning/hints for correcting syntactic violations among other typically inaccurate context-sensitive guidance and hints. These XML editors allow users to create and edit both well-formed and valid XML documents in a single editing mode.